/**
 * de.herberlin.sudoku.gui.DesignFactory
 */
package de.herberlin.sudoku.gui;

import java.awt.Color;
import java.awt.Font;

import de.herberlin.sudoku.Main;
import de.herberlin.sudoku.gui.design.House;

/**
 * @author herberlin
 * @created 24.06.2006
 */
public abstract class DesignFactory {

	private static Class implClass=House.class;

	private static DesignFactory _instance=null;


	public static void setImplClass(Class clazz) {
		implClass=clazz;
		_instance=null;
	}

	public static  DesignFactory getInstance()  {
		if (_instance==null) {
			try {
				_instance=(DesignFactory)implClass.newInstance();
			} catch (Exception e) {
				Main.showError(null,e);
			}
		}
		return _instance;
	}

	public abstract Font getButtonFont();
	public abstract String getBackgroundImage();
	public abstract boolean isTransparent();
	public abstract int getButtonSize();
	public abstract int getGroupSpacing();
	public abstract Color getEnabledColor();
	public abstract Color getDisabledColor();
	public abstract Color getResolvedColor();
}
